package model;

import java.math.BigDecimal;
import javax.persistence.AttributeOverride;
import javax.persistence.AttributeOverrides;
import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

@Entity
@Table(name="venda_detalhe"
    ,schema="public"
)
public class VendaDetalhe  implements java.io.Serializable {

    @EmbeddedId   
    @AttributeOverrides( {
        @AttributeOverride(name="idVendaCabecalho", column=@Column(name="id_venda_cabecalho", nullable=false) ), 
        @AttributeOverride(name="idProduto", column=@Column(name="id_produto", nullable=false) ) 
    })
    private VendaDetalheId id;
    
    @ManyToOne(fetch=FetchType.LAZY)
    @JoinColumn(name="id_venda_cabecalho", nullable=false, insertable=false, updatable=false)
    private VendaCabecalho vendaCabecalho;
    
    @ManyToOne(fetch=FetchType.LAZY)
    @JoinColumn(name="id_produto", nullable=false, insertable=false, updatable=false)
    private Produto produto;
    
    @Column(name="quantidade", nullable=false)
    private int quantidade;
    
    @Column(name="vlr_unitario", nullable=false, precision=15)
    private BigDecimal vlrUnitario;
    
    @Column(name="vlr_total", nullable=false, precision=15)
    private BigDecimal vlrTotal;

    public VendaDetalhe() {
    }

    public VendaDetalhe(VendaDetalheId id, VendaCabecalho vendaCabecalho, Produto produto, int quantidade, BigDecimal vlrUnitario, BigDecimal vlrTotal) {
       this.id = id;
       this.vendaCabecalho = vendaCabecalho;
       this.produto = produto;
       this.quantidade = quantidade;
       this.vlrUnitario = vlrUnitario;
       this.vlrTotal = vlrTotal;
    }
    public VendaDetalheId getId() {
        return this.id;
    }
    
    public void setId(VendaDetalheId id) {
        this.id = id;
    }
    public VendaCabecalho getVendaCabecalho() {
        return this.vendaCabecalho;
    }
    
    public void setVendaCabecalho(VendaCabecalho vendaCabecalho) {
        this.vendaCabecalho = vendaCabecalho;
    }
    public Produto getProduto() {
        return this.produto;
    }
    
    public void setProduto(Produto produto) {
        this.produto = produto;
    }
    
        public int getQuantidade() {
        return this.quantidade;
    }
    
    public void setQuantidade(int quantidade) {
        this.quantidade = quantidade;
    }
    
        public BigDecimal getVlrUnitario() {
        return this.vlrUnitario;
    }
    
    public void setVlrUnitario(BigDecimal vlrUnitario) {
        this.vlrUnitario = vlrUnitario;
    }
    
        public BigDecimal getVlrTotal() {
        return this.vlrTotal;
    }
    
    public void setVlrTotal(BigDecimal vlrTotal) {
        this.vlrTotal = vlrTotal;
    }




}


